CentOS 7.0 环境编译thinstation

准备一台CentOS 7 服务器 (我的是阿里云的)

1.安装git

 yum install git

2.克隆thinstation仓库,并初始化环境

github 地址:https://github.com/Thinstation/thinstation.git

 git clone git://github.com/Thinstation/thinstation.git

thinstation大概有1.3G,网速正常的话也可能很慢,下载时间比较长,耐心等待。

3.安装ftp服务,将编译好的thinstation文件从服务器拉下来

yum install vsftpd

编辑/etc/vsftpd/vsftpd.conf,确保以下选项

local_enable=YES
write_enable=YES

4.创建一个用户(将编译好的thinstation生成的iso,pxe等复制到此用户的家目录)

 useradd centos;echo "123";passwd --stdin centos;

下载结束后,你克隆的thinstation源码将存放在你当前终端所在目录下,一般默认在当前用户的目录下。

5.初始化thinstation编译环境

cd到thinstation/目录

cd ~/thinstation

然后执行./setup-chroot进行初始化(注意当前用户必须是root,有些命令只有拥有超级用户权限才能执行)

./setup-chroot

注意此时终端显示的信息,这些都是thinstation所支持的package

重点:对于CentOS环境,必须修改thinstation/ts/TS_ENV

找到PATH变量,修改为:PATH=$PATH:/ts/bin:/sbin:/bin (不修改此处,在运行./setup-chroot后会因为找不到相关命令而报错,可能影响后续的编译)

初始化结束:按Q退出,按Q退出只是进入到了编译的环境,并不是退出编译

退出的只是当前的页面,其实按Q之后进入编译环境并不是退出编译环境,而是显示着

[root@TS_chroot]/#

如果要退出编译环境还需要输入exit 再次退出,按H帮助,到这里编译环境就搭建好了。

需要再次进入编译环境,还需切换到超级用户,进入thinstation目录输入./setup-chroot 后,按Q再次进入编译环境。(每次对thinstation进行编译都得这样操作)

6.自定义配置文件

编译环境搭建好后,将thinstation编译成符合自己需求的thinstation才是真正的编译过程。那么最重要的就是配置文件了。

主要有两个配置文件:

  (1) build.conf
  (2) build.conf.buildtime

对于build.conf文件:

  1. 文件说明
    这个文件是thinstation的基本配置文件,你可以通过修改这个文件选择你需要thinstation
    兼容那些硬件包含那些程序和功能,并通过运行“./build”命令生成thinstation 启动镜
    像。
  2. 模块
    首先,查看thinstation支持的主机型号模块是否在thinstation/build/machine/目录下已存在。

不存在自己创建自己主机型号模块(建议自己创建)

./mkchine Mini-PC  //此时会生成build/machine/Mini-PC目录

我们将自己这个主机型号模块编译进这个build.conf文件中

machine Mini-PC  

此时machine/Mini-PC目录为空,现在的问题是怎么得到客户端主机的驱动模块?

不急,先说一下thinstation.conf.buildtime配置文件,你需要先完成一次任意的编译。

对于thinstation.conf.buildtmie

  1. 文件说明
    这个文件主要是定义开机后主机的一些设置。

  2. 参数
    主要有
    自定义音量
    麦克风
    图形界面管理器
    系统主题风格,如xp
    显示图标
    开机自动运行

等等

### 7.获取目标主机的硬件驱动模块

配合PXE服务器,主要有以下几个步骤:

 (1)在build.conf配置文件中找到 #package extension 与 #package extensions-x 这两个选项,然后开启(去掉注释)。
 (2)build.conf和build.conf.buildtime配置文件准备完毕后,使用./buid --allmodules编译
 ./build --allmodules    //allmodules顾名思义,就是编译所有的模块拉~

然后将编译好的thinstation/build/boot-images下的pxe下的所有文件复制到PXE服务器的tftp目录下。

接下来要注意了:

 (1)客户端开机网卡启动,PXE引导thinstation(小型的linux系统)kernel并加载到内存,
 此时客户端应该启动进入界面了,然后客户端运行终端terminel或者xterm,
 在终端中输入“/bin/hwlister.sh"运行,你将会得到modules.list(firmware.list可能会有),modules.list包含了客户端主机驱动模块的列表.
~]# ls /

你会发现在根目录下多了modules.list文件,用u盘将它拷贝到你的PXE服务器上。

 (2)将modules.list文件copy到你的创建的机器模块目录下,
 我这里是thinstation/build/machine/PHILIPS/mudules.list。
 (因为机器的不同,可能也会生成firmware.list等文件,但这并不是必须的,必须的文件只有mudules.list文件)

如果你的机器允许tftp上传,官方文档说会直接发送到相关machine模块的目录下,我这里是直接用u盘烤过去的。

8.再次编译符合目标主机驱动的thinstation

注意啦:

 ~]# vim build      //不要忘记注释 package extensions 与 package extensions-x
 ~]# ./build        //不要加--allmodules,我们已经得到了modules.list了呀!

如果你不通过/bin/hwlister.sh命令获取客户端主机驱动,我们需要知道那些模块是我们需要编译进去的,模块就是对应的驱动,在modules.list文件中定义。不要把不需要的模块编译进去,越多的模块启动所需的时间越长。

9.最后就是将编译完成的pxe目录下的所有内容拷贝到PXE服务器的tftp目录下

10.瘦客户端就制作完成啦


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 876208453@qq.com

文章标题:CentOS 7.0 环境编译thinstation

本文作者:Cai Jun

发布时间:2018-07-09, 12:43:17

最后更新:2019-02-28, 03:28:32

原始链接:http://johncaijun.github.io/2018-07-10-CentOS 7.0 环境编译thinstation/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏